/**
 *  @file XmlSaxParser.h
 */
#ifndef _XMLSAXPARSER_H_
#define _XMLSAXPARSER_H_

#include "../../../common/BaseObject.h"
#include "../../../io/Stream.h"
#include "../SAXHandler.h"

namespace cppflib
{

namespace xml
{

namespace sax
{

class SAXHandler;

/**
 *  A simple XML SAX parser.
 *  This parser will skip XSLT and DTD declaration
 */
class XmlSaxParser : public BaseObject
{
private:
    io::Stream *pStream;
    SAXHandler *pHandler;
private:
    XmlSaxParser(void);
public:
    XmlSaxParser(io::Stream &stream, SAXHandler &handler);
    virtual ~XmlSaxParser(void);
    void StartParsing();
};

} // end of namespace sax

} // end of namespace xml

} // end of namespace cppflib

#endif
